<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    //用常规方法实现1+2+.....+100=?
    for (var i = 1, sum = 0; i <= 100; i++) {
      sum += i;
    }
    console.log(sum);

    //用IIFE实现上面操作
    console.log("这是方法1");
    // 方法1：
    (function () {
      for (var i = 1, sum = 0; i <= 100; i++) {
        sum += i;
      }
      //将结果赋值给全局变量，通过全局变量将结果抛出
      window.rs = sum;
    })();
    console.log(rs);

    // 传参
    (function (n) {
      for (var i = 1, sum = 0; i <= n; i++) {
        sum += i;
      }
      //将结果赋值给全局变量，通过全局变量将结果抛出
      window.rs = sum;
    })(10);
    console.log(rs);

    console.log("这是方法2");
    // 方法2：
    // 通过return将结果返回，赋值给一个变量
    var rs =
      "结果为" +
      (function () {
        for (var i = 1, sum = 0; i <= 100; i++) {
          sum += i;
        }
        return sum;
      })();
    console.log(rs);

    // 或  不会造成全局污染，运算结束后立即销毁
    (function () {
      for (var i = 1, sum = 0; i <= 100; i++) {
        sum += i;
      }
      console.log(sum);
    })();
  </script>
</html>
